package com.easyj.admin.sys.service;



import com.easyj.admin.activiti.vo.ProcessDefVO;
import com.easyj.admin.activiti.vo.ProcessReqDTO;
import com.easyj.base.common.page.Page;
import com.easyj.base.exception.ActivitiException;
import com.easyj.base.exception.EasyjException;



/**
     * 流程管理。
      * 更新一次流程，就增加一个version。   
 */
public interface IProcessDefService {
    /**
     * 获取流程定义集合，
     */
	public Page<ProcessDefVO> findProcessDefinitionList(ProcessDefVO filter);
	/**
	 * 取得流程模形
	 * @param processDefinitionId
	 * @return
	 */
	public ProcessDefVO getModel(String processDefinitionId) throws ActivitiException; 
	
	/**
	* 简化管理。导入流程后，直接更新部署流程
	* @param model
	* @return
	*/
	public void impProcess(ProcessReqDTO model) throws EasyjException;

	public void updateProcess(ProcessDefVO model) throws EasyjException;
	
	public void addProcess(ProcessDefVO model) throws EasyjException;
	
	/**
	 * 按id激活流程
	 * @param id
	 */
	public void activeProcessById(String id);
	
	/**
	 * 按‘key’挂起流程
	 * @param key
	 */
	public void suspendProcessById(String id);
	
	public void deleteProcessByDeploymentId(String deploymentId);
    
}
